//
//  XZ_FoldView.m
//  Project_Demo
//
//  Created by caoxiaozhu on 2018/7/21.
//  Copyright © 2018年 caoxiaozhu. All rights reserved.
//

#import "XZ_FoldView.h"

static NSString *const cellID = @"cellID";

@interface XZ_FoldView()<UITableViewDelegate,UITableViewDataSource>
@property(nonatomic,strong)UITableView *mainTableView;
@property (nonatomic,strong)NSMutableArray *flagArray;//记录状态的数组
@property (nonatomic,strong)NSArray *contentArr1;//记录状态的数组
@property(nonatomic,strong)NSMutableDictionary *selectedIndexes;
@property(nonatomic,assign)BOOL showContentTopLineView;
@property(nonatomic,assign)BOOL scrollBottom;
@end

@implementation XZ_FoldView

SINGLETON_FOR_CLASS(XZ_FoldView)


-(instancetype)init{
    if (self == [super init]) {
        
        [self setResources];
        [self setupUI];
    }
    return self;
}

-(void)setResources{
    
//    self.headerTitleArr = @[
//                            @"Q1:什么是合肥通乘车码?",
//                            @"Q2:如何使用乘车码?",
//                            @"Q3:充值不成功的原因有哪些?",
//                            @"Q4:您可以使用哪些支付方式?",
//                            @"Q5:忘记了密码要如何找回?",
//                            @"Q6:充值不成功的原因有哪些?",
//                            @"Q7:您可以使用哪些支付方式??",
//                            ];
    
//    self.contentArr = @[
//                        @"开通过联机账户的主卡或者绑定的副卡在电子站牌功能栏内签约后，如果联机账户余额充足。",
//                        @"开通过联机账户的主卡或者绑定的副卡在电子站牌功能栏内签约后，如果联机账户余额充足，即可在公交候车点的电子站牌自助充值，卡内。圈存到签约卡内。",
//                        @"开通过联机账户的主卡或者绑定的副卡在电子站牌功能栏内签约后，如果联机账户余额充足，即可在公交候车点的电子站牌自助充值，将联机账户内的余额按签约金额圈存到签约卡内。余额按签约金额圈存到签约卡内。",
//                        @"开通过联机账户的主卡或者绑定的副卡在电子站牌功能栏内签约后，如果联机账户余额充足，即可在公交候车点的电子站牌自助充值，将联机账户内的余额按签约金额圈存到签约卡内。站牌自助充值，将联机账户内的余额按签约金额圈存到签约卡内。",
//                        @"开通过联机账户的主卡或者绑定的副卡在电子站牌功能栏内签约后，如果联机账户余额充足，即可在公交候车点的电子站牌自助充值，将联机账户内的余额按签约金额圈存到签约卡内。开通过联机账户的主卡或者绑定的副卡在电子站牌功能栏内签约后，如果联机账户余额充足，即可在公交候车点的电子站牌自助充值，将联机账户内的余额按签约金额圈存到签约卡内。",
//                        @"开通过联机账户的主卡或者绑定的副卡在电子站牌功能栏内签约后，如果联机账户余额充足。",
//                        @"开通过联机账户的主卡或者绑定的副卡在电子站牌功能栏内签约后，如果联机账户余额充足，即可在公交候车点的电子站牌自助充值，将联机账户内的余额按签约金额圈存到签约卡内。圈存到签约卡内.",
//                        ];
}

//-(void)layoutSubviews{
//    [super layoutSubviews];
//    if (self == nil) {
//        [self setupUI];
//    }
//}


-(void)setupUI{
    _mainTableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight-naviHeight) style:UITableViewStylePlain];
    [self addSubview:_mainTableView];
    _mainTableView.bounces = false;
    _mainTableView.delegate = self;
    _mainTableView.dataSource = self;
    _mainTableView.backgroundColor = Color_Clear;
    _mainTableView.tableFooterView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, kScreenWidth, 1)];
     _mainTableView.tableHeaderView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, kScreenWidth, 15)];
    
    _flagArray = [NSMutableArray array];
    //计算内容的字体高度
    _contentHeightArr = [NSMutableArray array];
    _scrollBottom = false;
}

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    //已点开的cell高度变高
    
    if ([_flagArray containsObject:indexPath]) {
        return [_contentHeightArr[indexPath.row] floatValue]+70;
    }
    
    return 60;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return self.headerTitleArr.count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    
    UITableViewCell *cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID];
    
//    if (cell == nil) {
//        cell =
        UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(15, 0, kScreenWidth, 60)];

        label.tag = 10;
        label.text = _headerTitleArr[indexPath.row];
        [cell.contentView addSubview:label];
        
        //设置masksToBounds为YES
        cell.layer.masksToBounds = YES;
        //设置内层label上的内容
        UILabel *infoLabel = [[UILabel alloc]initWithFrame:CGRectMake(15, 61, kScreenWidth-30, [_contentHeightArr[indexPath.row] floatValue])];
        infoLabel.tag = 20;
        infoLabel.font = FONT(15);
        infoLabel.numberOfLines  = 0;
        infoLabel.textColor = Color_LightGray;
        infoLabel.text = _contentArr[indexPath.row];
        [cell.contentView addSubview:infoLabel];
    
    //添加顶部分割线
        UIView *topLineView = [UIView lineViewWithTop:true Position:self.bounds.origin.y - 10 Color:nil];
    if (_showContentTopLineView) {
        [infoLabel addSubview:topLineView];
    }
    
    
//    }

    //为cell上的控件赋值
//    UILabel *label = (UILabel *)[cell viewWithTag:10];
//    UILabel *infoLabel = (UILabel *)[cell viewWithTag:20];
    //[NSString stringWithFormat:@"我是内层的第%ld个",indexPath.row];
    
//    UILabel *label = (UILabel *)[cell viewWithTag:10];
//    label.text = [NSString stringWithFormat:@"我是第%ld个",indexPath.row];
//    UILabel *infoLabel = (UILabel *)[cell viewWithTag:20];
//    infoLabel.text = _contentArr[indexPath.row];//[NSString stringWithFormat:@"我是内层的第%ld个",indexPath.row];
    
    [cell setSeparatorInset:UIEdgeInsetsZero];
    cell.accessoryType = UITableViewCellSeparatorStyleNone;
    return cell;
    
}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    //判断是否已经点开，若点开，则删除，未点开添加
    if ([_flagArray containsObject:indexPath]) {
        [_flagArray removeObject:indexPath];
        _showContentTopLineView =false;
    }else{
        [_flagArray addObject:indexPath];
        _showContentTopLineView = true;
    }
    if (indexPath.row == self.contentHeightArr.count - 1) {
        [self scrollViewToBottom:_scrollBottom];
        _scrollBottom = true;
    }else{
        _scrollBottom = false;
    }
    NSLog(@"%ld",(long)indexPath.row);
    //刷新tableView
//    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:1 inSection:0];
    [tableView reloadRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:indexPath.row inSection:0]] withRowAnimation:UITableViewRowAnimationFade];
//    [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
//    [tableView beginUpdates];
//    [tableView endUpdates];
}

//- (BOOL)cellIsSelected:(NSIndexPath*)indexPath {
//    // Return whether the cell at the specified index path is selected or not
//    NSNumber *selectedIndex = [selectedIndexes objectForKey:indexPath];
//    return selectedIndex == nil ? FALSE : [selectedIndex boolValue];
//}

- (void)scrollViewToBottom:(BOOL)animated

{
    NSLog(@"contensize===>%f",self.mainTableView.contentSize.height);
    NSLog(@"tableviewSize===>%f",self.mainTableView.bounds.size.height);
    if (self.mainTableView.contentSize.height > self.mainTableView.bounds.size.height)
    {
        CGPoint offset = CGPointMake(0, self.mainTableView.contentSize.height - self.mainTableView.bounds.size.height+naviHeight+15);
        [self.mainTableView setContentOffset:offset animated:false];
    }
}

-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
//    NSLog(@"123");
    _scrollBottom = false;
}
@end
